先來聊聊 Controller 的工作是什麼?當前端發出一個請求後,相對應的 Controller 將負責處理收到之任務,對於開發者來說,只需要依循規範方法來寫入 Controller 就可以了,但當然這方法寫完不是就結束了。其實可以再深入一點得說明:
Route 發出請求 -> Controller 執行“方法” -> 發送至 Model 幫忙查詢資料 -> 資料庫搜尋資料 ->
資料庫回傳資料 -> 回傳至 Model 翻譯翻譯 -> 發送給對應的 Controller 並轉送到 View -> 顯示在前端
這樣 MVC 的架構是否更清楚了呢?也可以把 Controller 想成是工廠裡的工頭,主要的工作是找到適合的人並分配其工作,等待完成後交付產品(收割?)出去。
好啦,其實 Controller 也是很辛苦,在背後要處理很多的事是我們看不到的。不過呢,在 Ruby on rails 的環境裡,為了讓程式能較容易閱讀與維護,都盡量依循著 Rails 的「慣例優於設定」(CoC, Convention Over Configuration)的原則(潛規則?)。
例如我有以下這幾個 Controller :
在依循「慣例優於設定」這個邏輯下,在命名時 Model 就會如以下:
這 Model 可能看起來好像有點多,除了原本的 cart, book, user 的 Model 之外,其他的 Model 都是在建立這些 Model 關聯時所分支出來的。
好了今天就先小小聊到這裡囉。明天見。掰餔。